﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using DevExpress.Web.ASPxEditors;
using DevExpress.Web.ASPxGridView;
using Common;
using System.Web.UI.WebControls.WebParts;
using System.Collections.Generic;
using System.Collections;
using System.Configuration;

public partial class OrdenCargueInternacional : PageBase
{
    #region StrAosId
    public string StrAosId
    {
        get
        {
            if (ViewState["StrAosId"] != null)
                return ViewState["StrAosId"].ToString();
            return "";
        }
        set { ViewState["StrAosId"] = value; }
    }
    #endregion

    #region OrdenCargueDataTableCache
    private DataTable OrdenCargueDataTableCache
    {
        get
        {
            DataTable objTable = null;
            if (Cache["OrdenCargueInternacional.aspx" + Session.SessionID] != null)
                objTable = (DataTable)Cache["OrdenCargueInternacional.aspx" + Session.SessionID];
            return objTable;
        }
        set
        {
            if (value != null)
            {
                Cache.Insert("OrdenCargueInternacional.aspx" + Session.SessionID, value, null, DateTime.Now.AddMinutes(20), TimeSpan.Zero);
            }
        }
    }
    #endregion

    #region remesasDataTableCache
    private DataTable remesasDataTableCache
    {
        get
        {
            DataTable objTable = null;
            if (Cache["remesasInternacionalDataTableCache.aspx" + Session.SessionID] != null)
                objTable = (DataTable)Cache["remesasInternacionalDataTableCache.aspx" + Session.SessionID];
            return objTable;
        }
        set
        {
            if (value != null)
            {
                Cache.Insert("remesasInternacionalDataTableCache.aspx" + Session.SessionID, value, null, DateTime.Now.AddMinutes(20), TimeSpan.Zero);
            }
        }
    }
    #endregion

    #region OrdenVinesAsociadosDataTableCache
    private DataTable OrdenVinesAsociadosDataTableCache
    {
        get
        {
            DataTable objTable = null;
            if (Cache["OrdenVinesAsociadosInternacionalDataTableCache.aspx" + Session.SessionID] != null)
                objTable = (DataTable)Cache["OrdenVinesAsociadosInternacionalDataTableCache.aspx" + Session.SessionID];
            return objTable;
        }
        set
        {
            if (value != null)
            {
                Cache.Insert("OrdenVinesAsociadosInternacionalDataTableCache.aspx" + Session.SessionID, value, null, DateTime.Now.AddMinutes(20), TimeSpan.Zero);
            }
        }
    }
    #endregion

    #region TraerContextItems
    private void TraerContextItems()
    {
        if (Context != null)
        {

            if (Context.Items["StrAosId"] != null)
                StrAosId = Context.Items["StrAosId"].ToString();
        }
    }
    #endregion

    DataSet ds = null;

    #region Page_Load
    protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {
            ds = new DataSet();
            DataTable masterTable = new DataTable();
            masterTable.Columns.Add("AOC_ID", typeof(Decimal));
            masterTable.Columns.Add("AC_ID", typeof(Decimal));
            masterTable.Columns.Add("AOS_ID", typeof(Decimal));
            //masterTable.Columns.Add("descripcion", typeof(string));
            //masterTable.Columns.Add("valor", typeof(float));
            //masterTable.Columns.Add("subtotal", typeof(float));
            //masterTable.Columns.Add("IDArancel", typeof(int));
            masterTable.PrimaryKey = new DataColumn[] { masterTable.Columns["AOC_ID"] };

            ds.Tables.AddRange(new DataTable[] { masterTable });
            Session["DataSet"] = ds;

            TraerContextItems();
            cargarConductores();
            cargarConductoresAuxiliar();
            cargarTrailer();
            cargarCabezote();

            BinDatoscargarVinesDisponibles();
            cargarEstadosOrdenCargue();

            if (StrAosId != "")
            {
                //SI EXISTEN DATOS CARGUE EL DATA SET
                Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
                var datos = from a in contexto.AUT_ORDEN_SALIDA_AUT_CARTAs
                            where a.AOS_ID == Convert.ToDecimal(StrAosId)
                            select a;
                foreach (var v in datos)
                {
                    DataRow row = ds.Tables[0].NewRow();
                    row["AOC_ID"] = v.AOC_ID;
                    row["AC_ID"] = v.AC_ID;
                    //row["AOS_ID"] = v.AOS_ID;
                    ds.Tables[0].Rows.Add(row);
                }
                //ds.Tables[0] = (DataTable) datos;
                cargarCampos();
                BinDatoscargarVinesAsociados();
                BinDatosRemesas();
                TabPanel2.Enabled = true;
                //TabPanel3.Enabled = true;
            }
            else
            {

                TabPanel2.Enabled = false;
                //TabPanel3.Enabled = false;
            }


        }
        else
        {
            ds = (DataSet)Session["DataSet"];

            if (OrdenCargueDataTableCache != null)
            {
                ASPxGridViewVines.DataSource = OrdenCargueDataTableCache;
                ASPxGridViewVines.DataBind();
            }

            if (OrdenVinesAsociadosDataTableCache != null)
            {
                ASPxGridViewVinesAsociados.DataSource = OrdenVinesAsociadosDataTableCache;
                ASPxGridViewVinesAsociados.DataBind();
            }

            if (remesasDataTableCache != null)
            {
                ASPxGridRemesas.DataSource = remesasDataTableCache;
                ASPxGridRemesas.DataBind();
            }

        }

    }
    #endregion

    #region cargarCampos
    private void cargarCampos()
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);

            #region AUT_ORDEN_SALIDAs

            var datosEntidad = from a in contexto.AUT_ORDEN_SALIDAs
                               join b in contexto.AUT_CLIENTEs on a.ACL_ID_ORIGEN equals b.ACL_ID
                               join c in contexto.AUT_CLIENTEs on a.ACL_ID_DESTINO equals c.ACL_ID
                               where a.AOS_ID == Convert.ToDecimal(StrAosId)
                               select new
                               {
                                   a.ACL_ID_DESTINO,
                                   a.ACL_ID_ORIGEN,
                                   a.AOS_DESCRIPCION,
                                   a.AOS_ESTADO,
                                   a.AOS_FECHA_ASIGNACION,
                                   a.AOS_FECHA_ENTREGA,
                                   a.AOS_FECHA_SALIDA,
                                   a.AOS_ID,
                                   a.AOS_NOMBRE,
                                   a.APE_ID,
                                   a.AVE_ID_CABEZOTE,
                                   a.AVE_ID_TRAILER,
                                   a.AOS_NOVEDAD_ENTREGA,
                                   a.AOS_NOVEDAD_SALIDA,
                                   a.AOS_FECHA_SOLICITUD,
                                   a.AES_ID,
                                   ZON_ID_ORIGEN = b.ZON_ID,
                                   ZONA_ID_DESTINO = c.ZON_ID,
                                   //NUEVOS CAMPOS PARA LA ORDEN DE CARGUE INTERNACIONAL

                                   a.AOS_INTER_No,
                                   a.AOS_INTER_CERT,
                                   a.AOS_INTER_PERMISOS,
                                   a.AOS_INTER_NATURALEZA_CARGA,
                                   a.AOS_INTER_CANTIDAD,
                                   a.AOS_INTER_PRECIO_MERCANCIAS,
                                   a.AOS_INTER_PESO_BRUTO,
                                   a.AOS_INTER_PESO_NETO,
                                   a.ZON_ID_ENTREGA,
                                   a.ZON_ID_CARGA,
                                   a.APE_ID_AUX
                               };
            foreach (var v in datosEntidad)
            {
                lblNumeroOrdenCargue.Text = StrAosId;
                ddlCabezote.Value = v.AVE_ID_CABEZOTE.ToString();
                ddlTrailer.Value = v.AVE_ID_TRAILER.ToString();
                ddlConductores.Value = v.APE_ID.ToString();

                DateTime objFechaSolicitud = Convert.ToDateTime(v.AOS_FECHA_SOLICITUD);
                txtFechaSolicitud.Text = objFechaSolicitud.ToShortDateString();

                DateTime objFechaEntrega = Convert.ToDateTime(v.AOS_FECHA_ENTREGA);
                txtFechaEntrega.Text = objFechaEntrega.ToShortDateString();

                DateTime objFechaAsignacion = Convert.ToDateTime(v.AOS_FECHA_ASIGNACION);
                txtFechaAsignacion.Text = objFechaAsignacion.ToShortDateString();


                //txtNovedadesEntrega.Text = v.AOS_NOVEDAD_ENTREGA;
                //txtNovedadesRecibo.Text = v.AOS_NOVEDAD_SALIDA;


                if (!string.IsNullOrEmpty(v.APE_ID_AUX.ToString()))
                    ddlConductorAuxiliar.Value = v.APE_ID_AUX.ToString();

                if (!string.IsNullOrEmpty(v.AES_ID.ToString()))
                    ddlEstadosOrden.Value = v.AES_ID.ToString();

                #region Carga Origen
                if (!String.IsNullOrEmpty(v.ZON_ID_ORIGEN))
                {
                            ddlZonaOrigen.Value = v.ACL_ID_ORIGEN.ToString();

                }
                #endregion

                #region Carga DESTINO
                if (!String.IsNullOrEmpty(v.ZONA_ID_DESTINO))
                {
                          ddlZonaDestino.Value = v.ACL_ID_DESTINO.ToString();
                        
                    
                }
                #endregion

            }
            #endregion


        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion

    #region BinDatoscargarVines
    private void BinDatoscargarVinesDisponibles()
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.AUT_VINEs
                        where !(from b in contexto.AUT_ORDEN_SALIDA_AUT_VINs select b.AVI_ID).Contains(a.AVI_ID)
                        select a;
            if (datos == null) return;
            ASPxGridViewVines.BeginUpdate();
            ASPxGridViewVines.DataSource = datos;
            ASPxGridViewVines.DataBind();
            ASPxGridViewVines.EndUpdate();
            OrdenCargueDataTableCache = GetDataView(ASPxGridViewVines);
        }
        catch (Exception ex)
        {
            ex.Message.ToString();
        }
    }
    #endregion

    #region BinDatoscargarVinesAsociados
    private void BinDatoscargarVinesAsociados()
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.AUT_VINEs
                        join b in contexto.AUT_ORDEN_SALIDA_AUT_VINs on a.AVI_ID equals b.AVI_ID
                        where b.AOS_ID == Convert.ToDecimal(StrAosId) //(from b in contexto.AUT_ORDEN_SALIDA_AUT_VINs select b.AVI_ID).Contains(a.AVI_ID)

                        //(ddlArtClaseEntidadArtistica.SelectedValue != "0" ? f.ACE_ID == Convert.ToInt32(ddlArtClaseEntidadArtistica.SelectedValue) : f.ACE_ID == f.ACE_ID)

                        select a;
            if (datos == null) return;
            ASPxGridViewVinesAsociados.BeginUpdate();
            ASPxGridViewVinesAsociados.DataSource = datos;
            ASPxGridViewVinesAsociados.DataBind();
            ASPxGridViewVinesAsociados.EndUpdate();
            OrdenVinesAsociadosDataTableCache = GetDataView(ASPxGridViewVinesAsociados);
        }
        catch (Exception ex)
        {
            ex.Message.ToString();
        }
    }
    #endregion

    #region GetDataView
    private DataTable GetDataView(ASPxGridView grid)
    {
        DataTable dt = new DataTable();
        foreach (GridViewColumn col in grid.VisibleColumns)
        {
            GridViewDataColumn dataColumn = col as GridViewDataColumn;
            if (dataColumn == null) continue;
            dt.Columns.Add(dataColumn.FieldName);
        }
        for (int i = 0; i < grid.VisibleRowCount; i++)
        {
            DataRow row = dt.Rows.Add();
            foreach (DataColumn col in dt.Columns)
                row[col.ColumnName] = grid.GetRowValues(i, col.ColumnName);
        }
        return dt;
    }
    #endregion

    #region cargarEstadosOrdenCargue
    private void cargarEstadosOrdenCargue()
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.AUT_ESTADOS_ORDEN_SALIDAs
                        select a;
            if (datos == null) return;
            ddlEstadosOrden.DataSource = datos;
            ddlEstadosOrden.TextField = "AES_NOMBRE";
            ddlEstadosOrden.ValueField = "AES_ID";
            ddlEstadosOrden.DataBind();
            // ddlDepartamentoOrigen.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--TODOS--", ""));
        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion

    #region cargarConductores
    private void cargarConductores()
    {
        try
        {

            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.AUT_PERSONALs
                        join b in contexto.AUT_CARGOs on a.ACA_ID equals b.ACA_ID
                        where
                                a.ACA_ID == 1
                        select new
                        {
                            a.APE_NOMBRE,
                            a.APE_ID
                        };


            if (datos == null) return;
            ddlConductores.DataSource = datos;
            ddlConductores.TextField = "APE_NOMBRE";
            ddlConductores.ValueField = "APE_ID";
            ddlConductores.DataBind();
            //ddlConductores.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--TODOS--", ""));
        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion

    #region cargarConductoresAuxiliar
    private void cargarConductoresAuxiliar()
    {
        try
        {

            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.AUT_PERSONALs
                        join b in contexto.AUT_CARGOs on a.ACA_ID equals b.ACA_ID
                        where
                                a.ACA_ID == 1
                        select new
                        {
                            a.APE_NOMBRE,
                            a.APE_ID
                        };


            if (datos == null) return;
            ddlConductorAuxiliar.DataSource = datos;
            ddlConductorAuxiliar.TextField = "APE_NOMBRE";
            ddlConductorAuxiliar.ValueField = "APE_ID";
            ddlConductorAuxiliar.DataBind();
            //ddlConductores.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--TODOS--", ""));
        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion

    #region cargarTrailer
    private void cargarTrailer()
    {
        try
        {

            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.AUT_VEHICULOs
                        where
                                a.ATV_ID == 5
                        select new
                        {
                            a.AMA_PLACA,
                            a.AVE_ID

                        };


            if (datos == null) return;
            ddlTrailer.DataSource = datos;
            ddlTrailer.TextField = "AMA_PLACA";
            ddlTrailer.ValueField = "AVE_ID";
            ddlTrailer.DataBind();
            //ddlTrailer.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--TODOS--", ""));
        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion

    #region cargarCabezote
    private void cargarCabezote()
    {
        try
        {

            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.AUT_VEHICULOs
                        where
                                a.ATV_ID == 2
                        select new
                        {
                            a.AMA_PLACA,
                            a.AVE_ID
                        };


            if (datos == null) return;
            ddlCabezote.DataSource = datos;
            ddlCabezote.TextField = "AMA_PLACA";
            ddlCabezote.ValueField = "AVE_ID";
            ddlCabezote.DataBind();
            //ddlCabezote.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--TODOS--", ""));
        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion



    #region btnGrabar_Click
    protected void btnGrabar_Click(object sender, EventArgs e)
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);

            if (StrAosId == "")
            {
                #region AUT_ORDEN_SALIDA
                //////////////////////////////////////////////
                //                                          //
                //             AUT_ORDEN_SALIDA              //
                //                                          //
                //////////////////////////////////////////////
                Model.AUT_ORDEN_SALIDA objOrdenSalida = new Model.AUT_ORDEN_SALIDA();
                objOrdenSalida.ACL_ID_DESTINO = Convert.ToDecimal(ddlZonaDestino.Value);
                objOrdenSalida.ACL_ID_ORIGEN = Convert.ToDecimal(ddlZonaOrigen.Value);

                //objOrdenSalida.ZON_ID_ORIGEN = 
                objOrdenSalida.AOS_FECHA_SOLICITUD = Convert.ToDateTime(txtFechaSolicitud.Text);
                objOrdenSalida.AOS_FECHA_SALIDA = Convert.ToDateTime(txtFechaSolicitud.Text);
                objOrdenSalida.AOS_FECHA_ENTREGA = Convert.ToDateTime(txtFechaEntrega.Text);
                objOrdenSalida.AOS_FECHA_ASIGNACION = Convert.ToDateTime(txtFechaAsignacion.Text);
                //objOrdenSalida.AOS_NOVEDAD_ENTREGA = txtNovedadesEntrega.Text;
                //objOrdenSalida.AOS_NOVEDAD_SALIDA = txtNovedadesRecibo.Text;
                objOrdenSalida.AVE_ID_CABEZOTE = Convert.ToDecimal(ddlCabezote.Value);
                objOrdenSalida.AVE_ID_TRAILER = Convert.ToDecimal(ddlTrailer.Value);
                objOrdenSalida.APE_ID = Convert.ToDecimal(ddlConductores.Value);
                objOrdenSalida.AES_ID = Convert.ToDecimal(ddlEstadosOrden.Value);
                objOrdenSalida.AOS_ESTADO = "I";
                objOrdenSalida.AOS_FECHA_CREACION = DateTime.Now;

                if (ddlConductorAuxiliar.Value != null)
                    objOrdenSalida.APE_ID_AUX = Convert.ToDecimal(ddlConductorAuxiliar.Value);

                

                contexto.AUT_ORDEN_SALIDAs.InsertOnSubmit(objOrdenSalida);
                contexto.SubmitChanges();

                

                //salvar los datos del dataTable
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    Model.AUT_ORDEN_SALIDA_AUT_CARTA objOrdenSalidaCarta = new Model.AUT_ORDEN_SALIDA_AUT_CARTA();
                    objOrdenSalidaCarta.AOS_ID = objOrdenSalida.AOS_ID;
                    objOrdenSalidaCarta.AC_ID = Convert.ToDecimal(row["AC_ID"].ToString());

                    contexto.AUT_ORDEN_SALIDA_AUT_CARTAs.InsertOnSubmit(objOrdenSalidaCarta);
                    contexto.SubmitChanges();

                }



                StrAosId = objOrdenSalida.AOS_ID.ToString();
                lblNumeroOrdenCargue.Text = StrAosId;
                TabPanel2.Enabled = true;
                #endregion
                // ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_parteA", "alert('Se genero exitosamente el Número de Orden de Cargue ');" + StrAosId, true);
                msgBox1.alert("Se genero exitosamente el Número de Orden de Cargue " + StrAosId);
            }
            else if (StrAosId != "")
            {
                var datosOrdenSalida = (from a in contexto.AUT_ORDEN_SALIDAs
                                        where a.AOS_ID == Convert.ToDecimal(StrAosId)
                                        select a);
                foreach (var v in datosOrdenSalida)
                {

                    v.ACL_ID_DESTINO = Convert.ToDecimal(ddlZonaDestino.Value);
                    v.ACL_ID_ORIGEN = Convert.ToDecimal(ddlZonaOrigen.Value);
                    v.AOS_FECHA_SOLICITUD = Convert.ToDateTime(txtFechaSolicitud.Text);
                    v.AOS_FECHA_SALIDA = Convert.ToDateTime(txtFechaSolicitud.Text);
                    v.AOS_FECHA_ENTREGA = Convert.ToDateTime(txtFechaEntrega.Text);
                    v.AOS_FECHA_ASIGNACION = Convert.ToDateTime(txtFechaAsignacion.Text);
                    ////v.AOS_NOVEDAD_ENTREGA = txtNovedadesEntrega.Text;
                    ////v.AOS_NOVEDAD_SALIDA = txtNovedadesRecibo.Text;
                    v.AVE_ID_CABEZOTE = Convert.ToDecimal(ddlCabezote.Value);
                    v.AVE_ID_TRAILER = Convert.ToDecimal(ddlTrailer.Value);
                    v.APE_ID = Convert.ToDecimal(ddlConductores.Value);
                    v.AES_ID = Convert.ToDecimal(ddlEstadosOrden.Value);

                    v.AOS_ESTADO = "I";

                    if (ddlConductorAuxiliar.Value !=  null)
                        v.APE_ID_AUX = Convert.ToDecimal(ddlConductorAuxiliar.Value);

                    //ELIMINAR Y ADICIONAR NUEVAMENTE

                    //salvar los datos del dataTable
                    var datosOrdenSalidaCarta = from u in contexto.AUT_ORDEN_SALIDA_AUT_CARTAs
                                                where u.AOS_ID == Convert.ToDecimal(StrAosId)
                                                select u;
                    foreach (var vi in datosOrdenSalidaCarta)
                    {
                        contexto.AUT_ORDEN_SALIDA_AUT_CARTAs.DeleteOnSubmit(vi);
                        contexto.SubmitChanges();
                    }


                   
                    
                    foreach (DataRow row in ds.Tables[0].Rows)
                    {
                        Model.AUT_ORDEN_SALIDA_AUT_CARTA objOrdenSalidaCarta = new Model.AUT_ORDEN_SALIDA_AUT_CARTA();
                        objOrdenSalidaCarta.AOS_ID = Convert.ToDecimal(StrAosId);
                        objOrdenSalidaCarta.AC_ID = Convert.ToDecimal(row["AC_ID"].ToString());
                        contexto.AUT_ORDEN_SALIDA_AUT_CARTAs.InsertOnSubmit(objOrdenSalidaCarta);
                        contexto.SubmitChanges();
                    }

                    contexto.SubmitChanges();
                    msgBox1.alert("Se guardo exitosamente la actualización de Orden de Cargue");
                    // ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_parteA", "alert('Se guardo exitosamente la actualización de Orden de Cargue ');" + StrAosId, true);
                }
            }
        }
        catch (Exception ex)
        {

            ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_parteB", ex.Message.ToString(), true);
        }





    }
    #endregion




    #region btnAsociarVines_Click
    protected void btnAsociarVines_Click(object sender, EventArgs e)
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);

            if (StrAosId != "")
            {
                List<object> keyValues = ASPxGridViewVines.GetSelectedFieldValues("AVI_ID");
                foreach (object key in keyValues)
                {
                    Model.AUT_ORDEN_SALIDA_AUT_VIN objAUT_ORDEN_SALIDA_AUT_VIN = new Model.AUT_ORDEN_SALIDA_AUT_VIN();
                    objAUT_ORDEN_SALIDA_AUT_VIN.AOS_ID = Convert.ToDecimal(StrAosId);
                    objAUT_ORDEN_SALIDA_AUT_VIN.AVI_ID = Convert.ToDecimal(key.ToString());
                    contexto.AUT_ORDEN_SALIDA_AUT_VINs.InsertOnSubmit(objAUT_ORDEN_SALIDA_AUT_VIN);
                    contexto.SubmitChanges();
                }
                BinDatoscargarVinesAsociados();

                BinDatoscargarVinesDisponibles();
                msgBox1.alert("Se asignaron exitosamente los vines a la orden de cargue");
                Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Mensaje, Utilidad.TraerMensaje("gmsgExitoGuardar"), lblMensajeAsignarVines);

            }
        }
        catch (Exception ex)
        {

            ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_parteB", ex.Message.ToString(), true);
        }
        //ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_parteA", "alert('Se asignaron exitosamente los vines al Número de Orden de Cargue');", true);
    }
    #endregion

    #region btnRegresar_Click
    protected void btnRegresar_Click(object sender, ImageClickEventArgs e)
    {
        Server.Transfer("OrdenCargueInternacionalListado.aspx", true);
    }
    #endregion

    #region btnImportarVines_Click
    protected void btnImportarVines_Click(object sender, EventArgs e)
    {

        if (fuImportar.HasFile)
        {
            //BussinesRulesPresupuesto.ModificadoresPreciosVenta objModificadoresPreciosVenta = new BussinesRulesPresupuesto.ModificadoresPreciosVenta(ConfigurationManager.AppSettings["Conn"]);
            int intContador = 0;
            try
            {
                DataSet objDataSet = ExcelImport.ImportExcelXLS(fuImportar.PostedFile, true);
                if (objDataSet.Tables[0].Rows.Count > 0)
                {
                    Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);


                    foreach (DataRow objRowExcel in objDataSet.Tables[0].Rows)
                    {
                        intContador++;
                        Model.AUT_VINE objAUT_VINE = new Model.AUT_VINE();
                        objAUT_VINE.AVI_CLIENTE = objRowExcel["CLIENTE"].ToString();
                        objAUT_VINE.AVI_ORIGEN = objRowExcel["ORIGEN"].ToString();
                        objAUT_VINE.AVI_DESTINO = objRowExcel["DESTINO"].ToString();
                        objAUT_VINE.AVI_CONCESIONARIO = objRowExcel["CONCESIONARIO"].ToString();
                        objAUT_VINE.AVI_VIN = objRowExcel["VIN"].ToString();
                        objAUT_VINE.AVI_NoMOTOR = objRowExcel["NoMOTOR"].ToString();
                        objAUT_VINE.AVI_INVENTARIO = objRowExcel["INVENTARIO"].ToString();
                        objAUT_VINE.AVI_DESCRIPCION = objRowExcel["DESCRIPCION"].ToString();
                        objAUT_VINE.AVI_COLOR = objRowExcel["COLOR"].ToString();
                        //if (!string.IsNullOrEmpty(objRowExcel["FECHA_DESPACHO_DEALER"].ToString()))
                        //    objAUT_VINE.AVI_FECHA_DESPACHO = Convert.ToDateTime(objRowExcel["FECHA_DESPACHO_DEALER"].ToString());
                        //if (!string.IsNullOrEmpty(objRowExcel["FECHA_RECEPCION_DEALER"].ToString()))
                        //    objAUT_VINE.AVI_FECHA_RECEPCION = Convert.ToDateTime(objRowExcel["FECHA_RECEPCION_DEALER"].ToString());
                        //if (!string.IsNullOrEmpty(objRowExcel["Fch_Fact"].ToString()))
                        //    objAUT_VINE.AVI_FECHA_FACTURA = Convert.ToDateTime(objRowExcel["Fch_Fact"].ToString());
                        objAUT_VINE.AVI_ZONA = objRowExcel["ZONA"].ToString();
                        objAUT_VINE.AVI_SOLICITANTE = objRowExcel["SOLICITANTE"].ToString();
                        objAUT_VINE.AVI_ALMACEN = objRowExcel["ALMACEN"].ToString();
                        objAUT_VINE.AVI_TIPO_FACTURACION = objRowExcel["TIPO_FACTURACION"].ToString();
                        objAUT_VINE.AVI_NoEQUIPO = objRowExcel["NoEQUIPO"].ToString();
                        objAUT_VINE.AVI_ZVSK = objRowExcel["ZVSK"].ToString();
                        objAUT_VINE.AVI_KMAT = objRowExcel["KMAT"].ToString();
                        objAUT_VINE.AVI_TIPO = objRowExcel["TIPO"].ToString();
                        objAUT_VINE.AVI_TIPO_UNIDAD = objRowExcel["TIPO_UNIDAD"].ToString();
                        objAUT_VINE.AVI_ANO_MDL = objRowExcel["ANO_MDL"].ToString();
                        objAUT_VINE.AVI_PEDIDO = objRowExcel["PEDIDO"].ToString();
                        objAUT_VINE.AVI_ENTREGA = objRowExcel["ENTREGA"].ToString();
                        objAUT_VINE.AVI_FACTURA = objRowExcel["FACTURA"].ToString();
                        objAUT_VINE.AVI_FCH_FACT = objRowExcel["FCH_FACT"].ToString();
                        objAUT_VINE.AVI_BL = objRowExcel["BL"].ToString();

                        //objAUT_VINE.AVI_FECHA_DESPACHO_DEALER = objRowExcel["FECHA_DESPACHO_DEALER"].ToString();
                        //objAUT_VINE.AVI_DESPACHO = objRowExcel["DESPACHO"].ToString();
                        //objAUT_VINE.AVI_FECHA_RECEPCION_DEALER = objRowExcel["FECHA_RECEPCION_DEALER"].ToString();
                        //objAUT_VINE.AVI_NOVEDADES_DESTINO = objRowExcel["NOVEDADES_DESTINO"].ToString();
                        //objAUT_VINE.AVI_NOVEDADES_ORIGEN = objRowExcel["NOVEDADES_ORIGEN"].ToString();
                        //objAUT_VINE.AVI_REPORTE_FACTURA = objRowExcel["REPORTE_FACTURA"].ToString();
                        //objAUT_VINE.AVI_COMENTARIOS = objRowExcel["COMENTARIOS"].ToString();
                        //objAUT_VINE.AVI_REPORTADO_EN_DESPACHO = objRowExcel["REPORTADO_EN_DESPACHO"].ToString();
                        //objAUT_VINE.AVI_REPORTADO_EN_ENTREGA = objRowExcel["REPORTADO_EN_ENTREGA"].ToString();


                        contexto.AUT_VINEs.InsertOnSubmit(objAUT_VINE);
                        contexto.SubmitChanges();
                    }

                    msgBox1.alert("Filas: " + intContador.ToString());
                    BinDatoscargarVinesDisponibles();
                }
            }
            catch (Exception ex)
            {
                msgBox1.alert("Error: " + ex.Message);

            }
        }
    }
    #endregion

    protected void btnEnviarCoordendas_Click(object sender, EventArgs e)
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);

            //si la orden se encuentra en EstadoRegistro 1 en transito puede enviar las coordenadas
            if (ddlEstadosOrden.Value.ToString() == "1")
            {


                //vines asociadors a la remesa
                string strVines = "";
                var datosVines = from a in contexto.AUT_ORDEN_SALIDAs
                                 join b in contexto.AUT_ORDEN_SALIDA_AUT_VINs on a.AOS_ID equals b.AOS_ID
                                 join c in contexto.AUT_VINEs on b.AVI_ID equals c.AVI_ID
                                 where a.AOS_ID == Convert.ToDecimal(StrAosId)
                                 select new
                                 {
                                     c.AVI_VIN
                                 };

                foreach (var v in datosVines)
                {
                    if (strVines == "")
                        strVines = v.AVI_VIN;
                    else
                        strVines = strVines + "," + v.AVI_VIN;
                }
                ServiceReferenceCargue.ReportLoadServiceClient objEnvio = new ServiceReferenceCargue.ReportLoadServiceClient();
                ServiceReferenceCargue.MessageDTO objMessageDTO = new ServiceReferenceCargue.MessageDTO();

                objMessageDTO = objEnvio.ReportLoad("", "", ddlCabezote.Value.ToString(), strVines, DateTime.Now.ToString("yyyy/MM/dd"));
                string strMessage = objMessageDTO.Message;
                string strTransactionNumber = objMessageDTO.TransactionNumber.ToString();




                var datos = from a in contexto.AUT_ORDEN_SALIDAs
                            where a.AOS_ID == Convert.ToDecimal(StrAosId)
                            select a;
                foreach (var v in datos)
                {
                    v.AOS_ESTADO = "S";
                    contexto.SubmitChanges();
                    msgBox1.alert("Se guardo exitosamente la actualización de Orden de Cargue");
                }
            }
            else
            {
                msgBox1.alert("La orden se debe encontrar en Transito para el envio de las coordenadas.");
            }
        }
        catch (Exception ex)
        {

            msgBox1.alert(ex.Message.ToString());
        }
    }

    protected void btnLiberarVines_Click(object sender, EventArgs e)
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);

            if (StrAosId != "")
            {
                List<object> keyValues = ASPxGridViewVinesAsociados.GetSelectedFieldValues("AVI_ID");
                foreach (object key in keyValues)
                {
                    var datosVinLeberar = from a in contexto.AUT_ORDEN_SALIDA_AUT_VINs
                                          where a.AVI_ID == Convert.ToDecimal(key.ToString())
                                          select a;

                    foreach (var v in datosVinLeberar)
                    {
                        contexto.AUT_ORDEN_SALIDA_AUT_VINs.DeleteOnSubmit(v);
                        contexto.SubmitChanges();
                    }

                }
                BinDatoscargarVinesAsociados();
                BinDatoscargarVinesDisponibles();
                msgBox1.alert("Se liberaron exitosamente los vines a la orden de cargue");
                Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Mensaje, Utilidad.TraerMensaje("gmsgExitoGuardar"), lblMensajeLiberarVines);
                //ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_parteB", "Se asociaron exitosamente los vines a la orden de cargue", true);

            }
        }
        catch (Exception ex)
        {

            ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_parteB", ex.Message.ToString(), true);
        }
    }

    protected void ASPxGridViewVinesAsociados_RowUpdated(object sender, DevExpress.Web.Data.ASPxDataUpdatedEventArgs e)
    {


    }

    protected void ASPxGridViewVinesAsociados_CustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e)
    {
        int index = -1;
        if (int.TryParse(e.Parameters, out index))
            ASPxGridViewVinesAsociados.SettingsEditing.Mode = (GridViewEditingMode)index;
    }

    protected void ASPxGridViewVinesAsociados_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.AUT_VINEs
                        where a.AVI_ID == Convert.ToDecimal(e.Keys["AVI_ID"].ToString())
                        select a;
            foreach (var v in datos)
            {
                //if (e.NewValues["ACL_ID_DESTINO"] != null)
                //    v.ACL_ID_DESTINO = Convert.ToDecimal(e.NewValues["ACL_ID_DESTINO"].ToString());
                //if (e.NewValues["ACL_ID_ORIGEN"] != null)
                //    v.ACL_ID_ORIGEN = Convert.ToDecimal(e.NewValues["ACL_ID_ORIGEN"].ToString());
                if (e.NewValues["AVI_NOVEDADES_DESTINO"] != null)
                    v.AVI_NOVEDADES_DESTINO = e.NewValues["AVI_NOVEDADES_DESTINO"].ToString();
                if (e.NewValues["AVI_NOVEDADES_ORIGEN"] != null)
                    v.AVI_NOVEDADES_ORIGEN = e.NewValues["AVI_NOVEDADES_ORIGEN"].ToString();
                if (e.NewValues["AVI_REPORTADO_EN_DESPACHO"] != null)
                    v.AVI_REPORTADO_EN_DESPACHO = e.NewValues["AVI_REPORTADO_EN_DESPACHO"].ToString();
                if (e.NewValues["AVI_DESPACHO"] != null)
                    v.AVI_DESPACHO = e.NewValues["AVI_DESPACHO"].ToString();
                if (e.NewValues["AVI_REPORTADO_EN_ENTREGA"] != null)
                    v.AVI_REPORTADO_EN_ENTREGA = e.NewValues["AVI_REPORTADO_EN_ENTREGA"].ToString();

                contexto.SubmitChanges();
            }


            //e.Keys["AVI_ID"].ToString();
            //e.NewValues["ACL_ID_DESTINO"].ToString();
        }
        catch (Exception objEx)
        {


        }
        e.Cancel = true;
        ASPxGridView gridView = (ASPxGridView)sender;
        gridView.CancelEdit();
        ((ASPxGridView)sender).CancelEdit();
        BinDatoscargarVinesAsociados();
        BinDatosRemesas();
    }

    #region BinDatosRemesas
    private void BinDatosRemesas()
    {


        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = (from a in contexto.AUT_ORDEN_SALIDA_AUT_VINs
                         join b in contexto.AUT_VINEs on a.AVI_ID equals b.AVI_ID
                         join c in contexto.AUT_CLIENTEs on b.ACL_ID_DESTINO equals c.ACL_ID
                         where a.AOS_ID == Convert.ToDecimal(lblNumeroOrdenCargue.Text)
                         select new
                         {
                             c.ACL_ID,
                             c.ACL_RAZON_SOCIAL,

                             AVI_NUMERO_REMESA = (Convert.ToDecimal(b.AVI_NUMERO_REMESA) == 0 ? 0 : b.AVI_NUMERO_REMESA),
                             b.AVI_NUMERO_TRANSACCION_CARGUE

                         }).Distinct();
            //where !(from b in contexto.AUT_ORDEN_SALIDA_AUT_VINs select b.AVI_ID).Contains(a.AVI_ID)

            //(ddlArtClaseEntidadArtistica.SelectedValue != "0" ? f.ACE_ID == Convert.ToInt32(ddlArtClaseEntidadArtistica.SelectedValue) : f.ACE_ID == f.ACE_ID)


            if (datos == null) return;
            ASPxGridRemesas.BeginUpdate();
            ASPxGridRemesas.DataSource = datos;
            ASPxGridRemesas.DataBind();
            ASPxGridRemesas.EndUpdate();
            remesasDataTableCache = GetDataView(ASPxGridRemesas);
        }
        catch (Exception ex)
        {
            ex.Message.ToString();
        }
    }
    #endregion

    protected void btnImprimirRemesa_Click(object sender, EventArgs e)
    {
        List<object> keyValues = ASPxGridRemesas.GetSelectedFieldValues("ACL_ID");
        Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
        try
        {
            foreach (object key in keyValues)
            {
                Session["AOS_ID"] = lblNumeroOrdenCargue.Text;
                Session["ACL_ID"] = key.ToString();
                //crearContextItems();
                System.Text.StringBuilder l_msg = new System.Text.StringBuilder();
                //TODO: Revisar esta impresión.
                l_msg.Append(@"<script language=javascript>");
                l_msg.Append(@"window.open('Remesa.aspx" + @"', 'VentanaImpresion','location=0, status=0, directories=0, width=800, height=600, resizable=no, hotkeys=no, scrollbars=yes, toolbar=no, menubar=no, personalbar=no');</script>");
                Response.Write(l_msg.ToString());
            }

        }
        catch (Exception ex)
        {
            ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_error", "alert('" + ex.Message.ToString() + "');", true);
        }
    }

    protected void ASPxGridRemesas_RowCommand(object sender, ASPxGridViewRowCommandEventArgs e)
    {
        if (e.KeyValue.ToString() != "")
        {
            #region Genera Numero de Remesa
            if (e.CommandArgs.CommandName == "cmdGenerar")
            {
                //CLI_ID

                //TRAIGAME TODOS LOS VINES RELACIOANDOS CON LA ORDEN IGUALMENTE CONSULTE 
                Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
                var datos = from a in contexto.AUT_ORDEN_SALIDA_AUT_VINs
                            join k in contexto.AUT_VINEs on a.AVI_ID equals k.AVI_ID
                            where a.AOS_ID == Convert.ToDecimal(lblNumeroOrdenCargue.Text)
                            && k.ACL_ID_DESTINO == Convert.ToDecimal(e.KeyValue)
                            select a;

                int decMaximo = (from c in contexto.AUT_VINEs
                                 select Convert.ToInt32(c.AVI_NUMERO_REMESA)).Max();
                decMaximo = decMaximo + 1;
                foreach (var v in datos)
                {
                    var datosVines = from b in contexto.AUT_VINEs
                                     where b.AVI_ID == v.AVI_ID
                                     select b;

                    foreach (var j in datosVines)
                    {
                        if (j.AVI_NUMERO_REMESA == null || j.AVI_NUMERO_REMESA == 0)
                        {
                            j.AVI_NUMERO_REMESA = decMaximo;
                            contexto.SubmitChanges();
                        }

                    }

                }


            }

            #endregion

            else if (e.CommandArgs.CommandName == "cmdEnviarCargue")
            {
                try
                {



                    Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);


                    //si la orden se encuentra en EstadoRegistro 1 en transito puede enviar las coordenadas
                    if (ddlEstadosOrden.Value.ToString() == "1")
                    {


                        //vines asociadors a la remesa
                        string strVines = "";
                        var datosVines = from a in contexto.AUT_ORDEN_SALIDAs
                                         join b in contexto.AUT_ORDEN_SALIDA_AUT_VINs on a.AOS_ID equals b.AOS_ID
                                         join c in contexto.AUT_VINEs on b.AVI_ID equals c.AVI_ID
                                         where a.AOS_ID == Convert.ToDecimal(StrAosId) && c.ACL_ID_DESTINO == Convert.ToDecimal(e.KeyValue)
                                         select new
                                         {
                                             c.AVI_VIN
                                         };

                        foreach (var v in datosVines)
                        {
                            if (strVines == "")
                                strVines = v.AVI_VIN;
                            else
                                strVines = strVines + "," + v.AVI_VIN;
                        }
                        ServiceReferenceCargue.ReportLoadServiceClient objEnvio = new ServiceReferenceCargue.ReportLoadServiceClient();
                        ServiceReferenceCargue.MessageDTO objMessageDTO = new ServiceReferenceCargue.MessageDTO();

                        objMessageDTO = objEnvio.ReportLoad("autosol", "201$@autosol$2", ddlCabezote.Value.ToString(), strVines, DateTime.Now.ToString("yyyy/MM/dd"));
                        string strMessage = objMessageDTO.Message;
                        string strTransactionNumber = objMessageDTO.TransactionNumber.ToString();

                        if (strTransactionNumber != "")
                            foreach (var v in datosVines)
                            {
                                var datosActualizacionTransaccion = from h in contexto.AUT_VINEs
                                                                    where h.AVI_VIN == v.AVI_VIN
                                                                    select h;
                                foreach (var i in datosActualizacionTransaccion)
                                {
                                    i.AVI_NUMERO_TRANSACCION_CARGUE = strTransactionNumber;
                                    contexto.SubmitChanges();
                                }


                            }

                        if (strTransactionNumber != "")
                            msgBox1.alert("Se envio exitosamente el cargue de la remesa al cliente No transaccion: " + strTransactionNumber);
                        else

                            msgBox1.alert("Error enviando orden de cargue");



                        //var datos = from a in contexto.AUT_ORDEN_SALIDAs
                        //            where a.AOS_ID == Convert.ToDecimal(StrAosId)
                        //            select a;
                        //foreach (var v in datos)
                        //{
                        //    v.AOS_ESTADO = "S";
                        //    contexto.SubmitChanges();
                        //    msgBox1.alert("Se envio exitosamente el cargue de la remesa al cliente");
                        //}
                    }
                    else
                    {
                        msgBox1.alert("La orden se debe encontrar en Transito para el envio de las coordenadas.");
                    }
                }
                catch (Exception ex)
                {

                    msgBox1.alert(ex.Message.ToString());
                }
            }
            BinDatosRemesas();
        }
    }

    protected void ASPxGridViewVinesAsociados_RowValidating(object sender, DevExpress.Web.Data.ASPxDataValidationEventArgs e)
    {
        //if (e.NewValues["ACL_ID_ORIGEN"] == null)
        //{
        //    AddError(e.Errors, ASPxGridViewVinesAsociados.Columns["ACL_ID_ORIGEN"],
        //             "Debe seleccionar el origen");
        //}

        //if (e.NewValues["ACL_ID_DESTINO"] == null)
        //{
        //    AddError(e.Errors, ASPxGridViewVinesAsociados.Columns["ACL_ID_DESTINO"],
        //             "Debe seleccionar el destino");
        //}

    }

    static void AddError(Dictionary<GridViewColumn, string> errors, GridViewColumn column, string errorText)
    {
        if (errors.ContainsKey(column)) return;
        errors[column] = errorText;
    }

    protected void btnRemesas_Click(object sender, EventArgs e)
    {
        BinDatosRemesas();
    }

    protected void gridContenidos_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e)
    {
        ds = (DataSet)Session["DataSet"];
        ASPxGridView gridView = (ASPxGridView)sender;
        DataTable dataTable = gridView.SettingsDetail.IsDetailGrid ? ds.Tables[1] : ds.Tables[0];
        DataRow row = dataTable.NewRow();
        e.NewValues["AOC_ID"] = GetNewId();
        IDictionaryEnumerator enumerator = e.NewValues.GetEnumerator();
        enumerator.Reset();
        while (enumerator.MoveNext())
            if (enumerator.Key.ToString() != "Count")
                row[enumerator.Key.ToString()] = enumerator.Value;
        gridView.CancelEdit();
        e.Cancel = true;
        dataTable.Rows.Add(row);
        //Label18.Text = "iNSERTO";
    }

    protected void ASPxGridView1_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
    {
        ds = (DataSet)Session["DataSet"];
        ASPxGridView gridView = (ASPxGridView)sender;
        DataTable dataTable = gridView.SettingsDetail.IsDetailGrid ? ds.Tables[1] : ds.Tables[0];
        DataRow row = dataTable.Rows.Find(e.Keys[0]);
        IDictionaryEnumerator enumerator = e.NewValues.GetEnumerator();
        enumerator.Reset();
        while (enumerator.MoveNext())
            row[enumerator.Key.ToString()] = enumerator.Value;
        gridView.CancelEdit();
        e.Cancel = true;

    }



    private int GetNewId()
    {
        ds = (DataSet)Session["DataSet"];
        DataTable table = ds.Tables[0];
        if (table.Rows.Count == 0) return 0;
        int max = Convert.ToInt32(table.Rows[0]["AOC_ID"]);
        for (int i = 1; i < table.Rows.Count; i++)
        {
            if (Convert.ToInt32(table.Rows[i]["AOC_ID"]) > max)
                max = Convert.ToInt32(table.Rows[i]["AOC_ID"]);
        }
        return max + 1;
    }
    protected void ddlCabezote_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.AUT_VEHICULOs
                        where a.AVE_ID == Convert.ToDecimal(ddlCabezote.SelectedItem.Value.ToString())
                        select a;
            foreach (var v in datos)
            {
                if (v.AVE_ID_TRAILER != null && v.AVE_ID_TRAILER.ToString() != "")
                    ddlTrailer.Value = v.AVE_ID_TRAILER.ToString();
            }
        }
        catch (Exception ex)
        {

            ex.Message.ToString();
        }
    }
}